#include <gba.h>

void DelayCycles (u32 cycles)
{
  /* GCC code16 */
  asm("mov r2, pc");
  asm("lsr r2, #24");

  // EWRAM
  asm("mov r1, #12");
  asm("cmp r2, #0x02");
  asm("beq MultiBootWaitCyclesLoop");

  // ROM 4/2 wait
  asm("mov r1, #14");
  asm("cmp r2, #0x08");
  asm("beq MultiBootWaitCyclesLoop");

  // IWRAM
  asm("mov r1, #4");

  asm("MultiBootWaitCyclesLoop:");
  asm("sub r0, r1");
  asm("bgt MultiBootWaitCyclesLoop");
}
